关于字符串截取问题,从网上搜到总结一下:
已知一个字符串,截取第一个指定字符后面所有字符
首先得知道indexof("")的用法,例如String i = “abcdefg”,
那么 i.indexof(“c”),返回的是int型,意思就是获取c字符所在的位置,
i.indexof(“c”,2),返回也是int型,意思就是从字符第二位开始找c字符的位置。
两个返回值都是2。
(1)获取第一个"_"后面所有字符,举例:
String a = "abcd_efgh_ijklmn_";
int index = a.indexOf("_");//获取第一个"_"的位置
String after1 = a.substring(index + 1);
System.out.println("第一个_后面字符串为:" + after1);
输出结果为:
第一个_后面字符串为:efgh_ijklmn_
(2)获取第一个"_"前面所有字符,举例:
String a = "abcd_efgh_ijklmn_";
int index = a.indexOf("_");//获取第一个"_"的位置
String before1 = a.substring(0,index);
System.out.println("第一个_前面字符串为:" + before1);
输出结果为:
第一个_前面字符串为:abcd
(3)获取第二个"_"后面所有字符,举例:
String a = "abcd_efgh_ijklmn_";
String after2 = a.substring(a.indexOf("_",a.indexOf("_") + 1) + 1);
System.out.println("第二个_后面字符串为:" + after2);
输出结果为:
第二个_后面字符串为:ijklmn_
(4)获取第二个"_"前面所有字符,举例:
String a = "abcd_efgh_ijklmn_";
String before2 = a.substring(0,a.indexOf("_",a.indexOf("_") + 1));
System.out.println("第二个_前面字符串为:" + before2);
输出结果为:
第二个_后面字符串为:ijklmn_
获取第三个_前后字符按(3)(4)方法截取。
(5)根据"_"分割字符串成数组,举例:
String a = "abcd_efgh_ijklmn_";
String[] x = a.split("_");
System.out.print("分割后的字符为:");
for(int i = 0;i<x.length;i++){
System.out.print(" " + x[i]);
}
输出结果为:
分割后的字符为: abcd efgh ijklmn
如果是这样字符串要换个方法截取:
String b = "110.120.130.140.150";
String[] o = b.split("\\.");
System.out.print("分割后字符为:");
for(int i = 0;i<o.length;i++){
System.out.print(" " + o[i]);
}
要添加转义字符,输出结果为:
分割后字符为: 110 120 130 140 150
上面(5)方法中,分割abcd_efgh_ijklmn_添加转义字符也可分割。